const request = (obj) => {
	// 可以在传参的时候设置默认参数,但是为了传对象,就在解构时设置默认值
	const {
		url,
		data = {},
		method = "GET",
		CType = 'application/json',
		mask = false,
		title = "加载中"
	} = obj
	// const token = uni.getStorageSync('token')
	const openid = uni.getStorageSync('openid')
	// 二次封装,返回一个Promise
	return new Promise((resolve, reject) => {
		uni.showLoading({
			title,
			mask
		}) //开启Loading框
		uni.request({
			// url: "http://localhost:3000" + url,
			url: "http://47.93.55.54:3300" + url,
			data,
			method,
			header: {
				'Content-type': CType, // 默认
				// 'Authorization': token,
				'openid': openid,
			},
			dataType: 'json', // 返回的数据格式-默认值
			responseType: 'text', // 响应的数据类型-默认值
			timeout: 20000, // 20s
			fail: (error) => {
				reject(error)
			},
			success: (result) => {
			
				if (result.statusCode === 401) {
					uni.setStorageSync('token', '');
					uni.showToast({
						title: '验证已过期,请重新授权',
						icon: 'none',
						duration: 2000
					})
				} else {
					resolve({ ...result.data,
						statusCode: result.statusCode
					})
				}
			},
			complete: (res) => { // finally
				wx.hideLoading() //关闭Loading
			}
		})
	})
}

function dateFormat(fmt, date) {
    let ret;
    let opt = {
        "Y+": date.getFullYear().toString(),        // 年
        "m+": (date.getMonth() + 1).toString(),     // 月
        "d+": date.getDate().toString(),            // 日
        "H+": date.getHours().toString(),           // 时
        "M+": date.getMinutes().toString(),         // 分
        "S+": date.getSeconds().toString()          // 秒
        // 有其他格式化字符需求可以继续添加，必须转化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
    return fmt;
}

// 导出与引入
module.exports = {
	request,
	dateFormat
};
